package com.ads.tpgrupo4.server.service.nuevaSolicitudDeCotizacion;

import com.ads.tpgrupo4.domain.cpr.solicitudDeCotizacion.SolicitudDeCotizacion;
import com.ads.tpgrupo4.server.remote.PersistenceService;
import com.ads.tpgrupo4.server.xml.XmlSource;
import com.ads.tpgrupo4.server.xml.mappers.SolicitudDeCotizacionXmlMapper;

public class NuevaSolicitudDeCotizacionService {

	private static NuevaSolicitudDeCotizacionService instance;

	private PersistenceService persistenceService = PersistenceService.getInstance();
	
	private SolicitudDeCotizacionXmlMapper solicitudDeCotizacionXmlMapper = SolicitudDeCotizacionXmlMapper.getInstance(); 
	
	public static NuevaSolicitudDeCotizacionService getInstance() {
		
		if (instance == null) {
			instance = new NuevaSolicitudDeCotizacionService();
		}
		
		return instance;
	}
	
	private NuevaSolicitudDeCotizacionService() {
	}
	
	public void nuevaSolicitudDeCotizacion(final XmlSource nuevaSolicitudDeCotizacionXmlSource) {
		
		try {
			
			final SolicitudDeCotizacion solicitudDeCotizacion = this.solicitudDeCotizacionXmlMapper.map(nuevaSolicitudDeCotizacionXmlSource);
			
			this.persistenceService.saveSolicitudDeCotizacion(solicitudDeCotizacion);
			
		} catch (final Exception e) {
			throw new NuevaSolicitudDeCotizacionServiceException(e);
		}
	}
	
}
